﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using EnvDTE;

namespace FXCopAddInCommand
{
    public class Program
    {
        static void Main(string[] args)
        {
            FileInfo arquivo;
            string[] solutions;
            Solution solucao;
            Type type;
            Object obj;
            BaseAddIn.Analysis.AddIn analisadorAddIn;
            BaseAddIn.Analysis.FXCop analisadorFXCop;
            List<BaseAddIn.Rules.BaseRuleAddIn> selectedRulesAddin = null;
            BaseAddIn.ProjectInfo.RuleFilesList allRules = null;

            if (args.Length >= 1)
            {
                type = System.Type.GetTypeFromProgID("VisualStudio.Solution");
                obj = System.Activator.CreateInstance(type, true);
                solucao = (Solution)obj;

                arquivo = new FileInfo(args[0]);
                solutions = File.ReadAllLines(arquivo.FullName);
                
                BaseAddIn.Load.CarregaRules("Properties.Settings.Default.CaminhoRules", ref allRules);
                BaseAddIn.Load.CarregaInstanciaRulesAddIn("Properties.Settings.Default.CaminhoRules", ref selectedRulesAddin, allRules);
                //analisadorAddIn = new BaseAddIn.Analysis.AddIn(selectedRulesAddin);
                //analisadorFXCop = new BaseAddIn.Analysis.FXCop("Properties.Settings.Default.CaminhoRules", "Properties.Settings.Default.CaminhoFXCop", allRules);

                //for (int i = 0; i < solutions.Length; i++)
                //{
                //    solucao.Open(solutions[i]);

                //    for (int contadorProjetos = 1; contadorProjetos <= solucao.Projects.Count; contadorProjetos++)
                //    {
                //        analisadorFXCop.Analise(solucao.Projects.Item(contadorProjetos));
                //        analisadorAddIn.Analise(solucao.Projects.Item(contadorProjetos));
                //    }

                //    solucao.Close(false);
                //}
            }
            else
            {
            }
        }
    }
}
